package cn.Tedu.file;


import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/*本类用于测试文件类File*/
public class TestFile {
    public static void main(String[] args) throws IOException {
        //创建File类
        /*1,File需要导包import java.io.File;
         * 2,路径是String类型,必须写正确,不然找不到文件
         * 3,完整的文件名包含两部分:文件名+后缀名
         * 4,ready文件夹与1.txt需要自己手动创建*/
        File file = new File("F:\\ready\\1.txt");
        //测试常用方法
        System.out.println(file.length());//3,获取当前文件的字节量
        System.out.println(file.exists());//true,判断文件是否存在
        System.out.println(file.isFile());//true,判断当前file对象是文件吗
        System.out.println(file.isDirectory());//false,判断当前file对象是文件夹吗
        System.out.println(file.getName());//1.txt,获取文件完整的名字
        System.out.println(file.getParent());//F:\ready,获取文件的父级路径
        System.out.println(file.getAbsolutePath());//F:\ready\1.txt,获取带盘符的文件的绝对路径

        //测试创建与删除
        /*new只会帮你在内存中创建一个File类型的对象
         * 并不会帮你在磁盘中创建一个真实存在的2.txt*/
        File file2 = new File("F:\\ready\\2.txt");
        //创建一个之前不存在的文件2.txt,如果创建成功,会返回true
        /*如果指定创建文件的路径不对,会抛出异常
         * 所以我们需要提前处理这个问题,暂时选择在main()上抛出
         * 这个IO异常是目前我们遇到的强制要求必须预先处理的异常
         * 如果不处理,方法的调用会报错,通不过编译*/
        System.out.println(file2.createNewFile());

        File file3 = new File("F:\\ready\\m");
        System.out.println(file3.mkdir());//创建不存在的单层文件夹
        File file4 = new File("F:\\ready\\a\\b\\c");
        System.out.println(file4.mkdirs());//创建不存在的多层文件夹

        /*delete()只能删除文件和空文件夹*/
        file2.delete();//删除文件2.txt
        file4.delete();//删除空文件夹c
        file3.delete();//直接删除了空文件夹m

        //测试展现文件列表
        File file5 = new File("F:\\ready");
        String[]list=file5.list();/*不常用*/
        System.out.println(Arrays.toString(list));//[1.txt, a]

        File[] fs=file5.listFiles();
        System.out.println(Arrays.toString(fs));//[F:\ready\1.txt, F:\ready\a]



            }
}